package com.company;

import sun.misc.LRUCache;
import sun.net.www.http.HttpClient;

import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
	// write your code here
//        int[] i=     {9,8,7,6,5,4,3,2,1,0};
//        Main main =new Main();
////       System.out.println( main.pivotIndex(i));
////        System.out.println( main.dominantIndex(i));
//        System.out.println( Arrays.toString(main.plusOne(i)));
//        System.out.println( Math.pow(2,15));
        int a= (int) Math.pow(2, 34);
//        int b =2147483648;
        int c=  (int) Math.pow(2, 33);
    }
    //数组的中心索引
    //返回数组中的索引，这个位置上的数，左边数的和等于右边数的和；
    public int pivotIndex(int[] nums) {
        int sum =0, leftsum =0,rightsum =0;
        for(int i:nums){
            sum =sum+i;
        }

        for(int i=0 ;i<nums.length;i++){
            if(i == 0){
                leftsum =0;
            }else{
                leftsum =leftsum +nums[i-1];
            }
            rightsum = sum - leftsum - nums[i];
            if(leftsum ==rightsum){
                return i;
            }

        }
        return -1;
    }

    //至少是其他数字两倍的最大数
    public int dominantIndex(int[] nums) {
        int max1=0,max2=0,index=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]>max1){
                max2=max1;
                max1=nums[i];
                index=i;
            }else if(nums[i]>max2){
                max2=nums[i];
            }
        }
        return max1>=max2*2?index:-1;

    }
    public int[] plusOne(int[] digits) {
        int n = digits.length;
        for(int i = n-1; i >= 0; i --) {
            // 非9加1
            if(digits[i] < 9) {
                // 如果是前一位需要进位的话那么前一位置为0,就在后一位(也就是此时的当前位+1)
                digits[i]++;
                // 直接把改变之后的数组返回(因为当前位不是9就不需要进位了,前面该进的位都已经进了所以直接把数组返回就行了)
                return digits;
            }
            // 缝9进0
            digits[i] = 0;
        }
        // 全部为9,则需要数组扩充1位         /**          * 如果位数全部都是9的话,那么遍历原来=数组上的所有的数,都是让数组上的所有的数变成0          * 也就是说明上面的if代码里面的内柔都是没有走的,就需要进行数组扩容          */
        int[] result = new int[n+1];
        result[0] = 1;


        return result;
    }
}
